package com.ruoyi.business.service;

import com.ruoyi.business.domain.dto.UserAndTokenDto;
import com.ruoyi.business.domain.vo.GetOpenIdVo;

/**
 * @author 滕玉静
 * @date 2022/03/11
 * @description 微信小程序Service
 */
public interface WXAppletService {


    String getAccessToken();

    /**
     * 小程序通过code取openId、unionId
     * @param code
     * @return
     * @throws Exception
     */
    GetOpenIdVo getOpenIdByCode(String code);

    /**
     * 生成小程序二维码
     * 生成顾问/机构邀请码
     * @param page  小程序页面路径
     * @param scene 小程序页面参数
     * @return
     */


    String generateQrCode(String page, String scene, String env);


    String generateInviteCode(String invitecode, String env);

    /**
     * 验证签名
     * 公众号 基本配置-填写服务器配置-使用
     * 小程序 开发管理-消息推送-使用
     * @param signature 微信加密签名，signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数
     * @param timestamp 时间戳
     * @param nonce 随机数
     * @return
     */
    boolean checkSignature(String signature, String timestamp, String nonce);

    /**
     * 小程序授权登录(-系统登录逻辑)
     * @param openid 小程序openid
     * @param unionid 开放平台unionid
     * @param weChatName 微信昵称
     * @param weChatImg 微信头像
     * @param inviteUserId 邀请人userId
     * @param inviteCode 工会邀请码
     * @date: 2022-03-25
     */

    UserAndTokenDto appletLogin(String openid,String phone);
}
